package com.sistemadistribucion.servlets;

import java.io.IOException;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.sistemadistribucion.controlador.BDWeb;

//import com.fasterxml.jackson.databind.ObjectMapper;


@WebServlet(asyncSupported = true, urlPatterns = { "/servletCobros" })
public class servletCobros extends HttpServlet 
{
	private static final long serialVersionUID = 1L;
       
    public servletCobros() 
    {
        super();
    }

	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		doPost(request, response);
	}


	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException 
	{
		try 
		{
			String action = request.getParameter("action");
			String jspPage = "main.jsp";
				
			if ((action==null) || (action.length() < 1) )
			{
				action = "default";
			}
			else if ("default".equals(action))
			{
				jspPage = "main.jsp";
			}			
			else if ("pagarFacturaParticular".equals(action)) 
			{
					Integer numeroFac = Integer.parseInt(request.getParameter("txtFacturaNum"));
					Integer numeroEncomienda= Integer.parseInt(request.getParameter("numEncomienda"));
					Integer ok;
					
					ok = BDWeb.getInstancia().pagarFacturaClientePaticular(numeroFac, numeroEncomienda);
					String mensaje;
					
					if (ok != 0)
					{
						mensaje =  "La factura fue pagada. Se genero el Recibo de pago.";
					}
					else
					{
						mensaje = "Ha ocurrido un error con el pago de la factura";	
					}
					jspPage = "mostrarMensaje.jsp";
					request.setAttribute("mensaje", mensaje);
			} 
			else if ("pagarFacturaEmpresa".equals(action))
			{
				Integer numeroFac = Integer.parseInt(request.getParameter("txtFacturaNum"));
				Long cuit = Long.parseLong(request.getParameter("cuit"));
				Integer numeroEncomienda= Integer.parseInt(request.getParameter("numEncomienda"));

				jspPage = "mostrarMensaje.jsp";
				
				int idRec = BDWeb.getInstancia().pagarFacturaClienteEmpresa(numeroEncomienda, numeroFac, cuit);
				String mensaje;
				if (idRec > 0)
				{
					mensaje = "La factura fue pagada. Se genero el Recibo de pago con el numero " + idRec;
				}
				else
				{
					mensaje = "Ha ocurrido un error con el pago de la factura";	
				}
				jspPage = "mostrarMensaje.jsp";
				request.setAttribute("mensaje", mensaje);
			}
			
			System.out.println("Dispatch al main desde servletCobros");
			dispatch(jspPage, request, response);
		
		} 
		catch (Exception e) 
		{
			e.printStackTrace();
		}
	}
	
	
	protected void dispatch(String jsp, HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
	{
		if(jsp != null)
		{
			RequestDispatcher rd = request.getRequestDispatcher(jsp);
			rd.forward(request, response);
		}
	}
	
}
